During unit testing we only test features of the class PracticeSharpLogic, since the GUI is hard to test automatically and library functions can not be changed (so any bug in the library would have to be "fixed" by workarounds in the program logic). \\
As the methods of PracticeSharpLogic are interwoven and very dependant on each other, we decided not to unit test methods in seperate test cases, but make relatively big test cases that cover the whole execution with assertions for every method call. That way, we can be sure that if we run into an inconsisten state (which may lead to errors), it was reached through valid program execution.